home *** CD-ROM | disk | FTP | other *** search
/ PD ROM 1 / PD ROM Volume I - Macintosh Software from BMUG (1988).iso / Electronic Messages / USEnet Digests / USEnet Vol. 4 / USEnet 4.29 < prev    next >
Encoding:
Text File  |  1988-04-08  |  27.8 KB  |  702 lines  |  [TEXT/ttxt]

  1. 29-Feb-88 08:37:56-PST,29149;000000000000
  2. Return-Path: <usenet-mac-request@RELAY.CS.NET>
  3. Received: from RELAY.CS.NET by SUMEX-AIM.Stanford.EDU with TCP; Mon, 29 Feb 88 08:37:12 PST
  4. Received: from relay2.cs.net by RELAY.CS.NET id ab18687; 29 Feb 88 10:44 EST
  5. Received: from relay.cs.net by RELAY.CS.NET id aa01115; 29 Feb 88 10:33 EST
  6. Received: from sdr.slb.com by RELAY.CS.NET id ab01083; 29 Feb 88 10:29 EST
  7. Date: Mon, 29 Feb 88 09:28 EDT
  8. From: Jeffrey Shulman <SHULMAN@sdr.slb.com>
  9. Subject: Usenet Mac Digest V4 #29
  10. To: usenet-mac@RELAY.CS.NET, PIERCE%HDS@sdr.slb.com
  11. X-VMS-To: in%"usenet-mac@relay.cs.net",in%"PIERCE%HDS@SDR.SLB.COM"
  12.  
  13. Date: Mon 29 Feb 88 09:28:41-EDT
  14. From: Jeff Shulman <SHULMAN@SDR>
  15. Subject: Usenet Mac Digest V4 #29
  16. To: Usenet-List: ;
  17. Message-ID: <573143321.0.SHULMAN@SDR>
  18. Mail-System-Version: <VAX-MM(218)+TOPSLIB(129)@SDR>
  19.  
  20. Usenet Mac Digest     Friday, February 26, 1988      Volume 4 : Issue 29 
  21.  
  22. Today's Topics:
  23.      3-D transformations on a MACII?
  24.      Re: Software for the Mac -- recommendations wanted.
  25.      Loud Mac II Fan-- Replaceable?
  26.      Summer Workshops/Programs for High School
  27.      Mac Plus Video Output
  28.      Re: Ever heard of VideoTrax backup system?
  29.      New SE fan & screen jitter?
  30.      Re: LightSpeed C 2.15 putchar???
  31.      MultiFinder Info Again
  32.      A Custom WDEF
  33.      Re: MacInHebrew problem
  34.  
  35. ---------------------------------------------------------------------- 
  36.  
  37. From: mfi@beach.cis.ufl.edu (Mark Interrante)
  38. Subject: 3-D transformations on a MACII?
  39. Date: 21 Feb 88 18:03:29 GMT
  40. Organization: UF CIS Department
  41.  
  42. Does anyone know if there is a color board for the MACII that does 3-D
  43. transformations?
  44. -- 
  45. Mark Interrante                                               CIS Department
  46.                                                        University of Florida
  47. Internet:  mfi@beach.cis.ufl.edu                      Gainesville, FL  32611
  48.                                                               (904) 335-8051
  49.  
  50.  
  51. ------------------------------
  52.  
  53. From: lonetto@phri.UUCP (Michael Lonetto)
  54. Subject: Re: Software for the Mac -- recommendations wanted.
  55. Date: 21 Feb 88 17:47:22 GMT
  56. Organization: Public Health Research Inst. (NY, NY)
  57.  
  58. Someone mentioned MacCalc.  I've been using MacCalc at home since it
  59. came out, and it really is a nice simple spreadsheet (which can generate
  60. nicer output than Excel)
  61.  
  62. At work we have Excel, which is more difficult to use for simple
  63. spreadsheets, but has formula and command macros (very nice to have if
  64. you use them).  It also has it's own graphing, but I find it easier (and
  65. nicer) to transfer data from either of these programs into Cricket Graph
  66. (MacCalc doesn't do graphs).  
  67.  
  68. This last method of working points out a difficulty with BOTH of these
  69. programs.  Whenever possible I LIVE in multifinder, especially at home
  70. (Mac+, 2.5MB).  MacCalc "has quit unexpectedly" whenever I start it
  71. under multifinder.  Excel works fine at work (1MB Mac+), and 272K (the
  72. default partition size) is plenty of memory for small spreadsheets (even
  73. 4 or 5 of them).  HOWEVER, when I tried it at home, it grabbed 750K !!
  74. Excel only seemed to know about the 272K it was set for.  500K went into
  75. Limbo!!  Does anybody know of:  1) any update plans for either of these
  76. programs that will fix these problems OR 2) any other spreadsheet with
  77. FORMULA macros which works with multifinder OR 3) a good statistical
  78. analysis program that will work with either of these.
  79.  
  80. I'd really like to buy Excel for home (Even if I wanted to pirate it,
  81. it's useless without the manuals) but it seems that something must be
  82. very wrong with the way it works under multifinder.  This is not
  83. confidence inspiring.
  84.  
  85. My two cents...
  86. -- 
  87. Michael Lonetto    UUCP:(allegra!phri!lonetto) 
  88. Dept of Applied Genetics
  89. Public Health Research Institute, 455 1st Ave, NY, NY 10016  
  90.  
  91.  
  92. ------------------------------
  93.  
  94. From: jasst3@cisunx.UUCP (Jeffrey A. Sullivan)
  95. Subject: Loud Mac II Fan-- Replaceable?
  96. Date: 21 Feb 88 18:40:11 GMT
  97. Organization: Univ. of Pittsburgh, Comp & Info Sys
  98.  
  99. I am the happy owner of a Mac II SYstem with the following gripe:  MY
  100. internal fan seems much louder than friends' fans.  IS there any way of
  101. replacig the fan?  If so, how about part numbers, etc?  I don't suppose
  102. this could be a warranty item?
  103. -- 
  104. ..........................................................................
  105. Jeff Sullivan                University of Pittsburgh
  106. jas@dsl.cadre.pittsburgh.edu        Intelligent Systems Studies Program
  107. jasper@PittVMS (BITNET)            Graduate Student
  108.  
  109.  
  110. ------------------------------
  111.  
  112. From: UD069225@NDSUVM1.BITNET (Eric H. Romo)
  113. Subject: Summer Workshops/Programs for High School
  114. Date: 21 Feb 88 09:06:04 GMT
  115. Organization: North Dakota Higher Education Computer Network, Fargo, ND
  116.  
  117. I have a friend who is a french 17 yearold who is coming to the US this
  118. summer and he's asked me for suggestions for some computer-related
  119. workshops or programs that he could take part in. So I'm asking you
  120. netters out there on his behalf. He's an avid Macintosh user and Apple
  121. II user as well. It would be interesting if their were some
  122. oppurtunities for him in those areas although anything involved with
  123. computers and programming is what he's looking for.
  124.  
  125. Please e-mail your responses to me and I'll pass them along to him.
  126. Thanks a bunch!
  127.                 -Eric.
  128. -- 
  129. ___________________________________________________________
  130. | Bitnet/Usenet                                     |$0.00|
  131. |                                                   |_____|
  132. |             Eric H. Romo                                |
  133. |             UD069225@NDSUVM1.BITNET                     |
  134. |             Chemistry Department                        |
  135. |             Grand  Forks, N.D. 58202                    |
  136. |_________________________________________________________|
  137.  
  138.  
  139. ------------------------------
  140.  
  141. From: macak@lakesys.UUCP (Jim Macak)
  142. Subject: Mac Plus Video Output
  143. Date: 22 Feb 88 17:53:39 GMT
  144. Organization: Lake Systems - Milwaukee, WI
  145.  
  146. I just got a call from a friend asking about Mac video output options. 
  147. We are not talking Mac II here, but rather Mac Plus.
  148.  
  149. He wants to produce a demo on a Mac and show it on a CRT, i.e. a
  150. television-like monitor.  He would also be interested in doing a VCR
  151. recording of the demo.
  152.  
  153. Is it possible to add a device to get NTSC output from a Mac Plus?  I
  154. believe this is what would be needed, yes?  If so, please give any info
  155. you have.
  156.  
  157. What other options are there for video output from a Plus?
  158.  
  159. I'm sure I've seen the answer to this somewhere in the past, but I don't
  160. recall where.  And besides, I don't remember the answer because I was
  161. never in need of the info.
  162.  
  163. Thanks for your help.  Please e-mail replies and I will summarize if
  164. warranted.
  165. -- 
  166. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  167. Jim -->  macak@lakesys.UUCP (Jim Macak)  {Standard disclaimer, nothin' fancy!}
  168. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 
  169.  
  170.  
  171. ------------------------------
  172.  
  173. From: Myron-Meier@cup.portal.com
  174. Subject: Re: Ever heard of VideoTrax backup system?
  175. Date: 22 Feb 88 00:05:18 GMT
  176. Organization: The Portal System (TM)
  177.  
  178. I haven't had any experience with the VideoTrax system, but I did get a
  179. chance to talk to Alpha Micro at the MacWorld Expo last month.  The
  180. VideoTrax system has been available for quite a while in the form of an
  181. IBM card, but they just recently announced their SCSI version (ie for
  182. the Mac).
  183.  
  184. Here's some info off their infosheet that I picked up at the show:
  185.   * Each block of data is copied several times to ensure data
  186. reliability.
  187.     Says that the data on the VideoTrax system is even more reliable
  188. than on
  189.     the hard drive you're backing up. [Sounds great!].
  190.     Average error rate for a hard disk is 1 bit in 10 to the -10.
  191.     Average error rate on VideoTrax tape is 1 bit in 10 to the -11.
  192.   * after back the tape can be verified to be restorable
  193.   * can connect to any VCR, although the VideoTrax one is modified to
  194. automate
  195.     some operations, ie. rewind, stop, play, etc...
  196.     Works with all VHS, Beta, 8mm, and foreign VCRs
  197.   * In 2-hour mode, VideoTrax can store up to 80MB on one standard video
  198. tape
  199.     In 4-hour mode, VideoTrax can store up to 160MB on one tape!
  200.   * Backs up a megabyte of data in 1.3 minutes.  = 10MB in about 13
  201. mins.
  202.   * Backup in either Image mode (whole hard disk) or File-by-File.
  203.   * No tape formatting is required
  204.   * data can be broadcast
  205.  
  206. The person I talked to in the booth told me that the Software was
  207. proprietory and you couldn't use another program (ie DiskFit), [Darn!!]
  208. although the prog looked pretty extensive, I really can't comment on how
  209. fast/reliable it was.
  210.  
  211. Don't write that check just yet though, He said that it probably
  212. wouldn't be ready until April or so...sorry.
  213.  
  214. Their address is:
  215.   Alpha Micro
  216.   3501 Sunflower Ave.
  217.   Santa Ana CA 92704
  218.   (714) 957-8500
  219.  
  220.  
  221. ------------------------------
  222.  
  223. From: whiteheada@byuvax.bitnet
  224. Subject: New SE fan & screen jitter?
  225. Date: 19 Feb 88 17:18:53 GMT
  226.  
  227. SE fan kits (Apple) I just had two SE's upgraded and they are great! 
  228. The fan noise is not even noticeable and the screen jitter is gone.  The
  229. kit has a fan and a new vertical video card (installs on the end of the
  230. CRT).  I highly recommend getting this upgrade.
  231. -- 
  232. Armand Whitehead
  233. BYU
  234.  
  235.  
  236. ------------------------------
  237.  
  238. From: clive@drutx.ATT.COM (Clive Steward)
  239. Subject: Re: LightSpeed C 2.15 putchar???
  240. Date: 23 Feb 88 00:58:18 GMT
  241. Organization: resident visitor
  242.  
  243. Well, I should have tried this one before posting.
  244.  
  245. I wasn't accurate as to the real problem, and neither was Dave Platt
  246. coherent!dplatt, who sent unix-gruish mail on the subject.  More on that
  247. at the end.
  248.  
  249. The real difficulty, doped out in the library sources, is that the LSC
  250. library function Init_stdio () doesn't always get called automatically,
  251. as it's supposed to.
  252.  
  253. For now (we can hope it'll be fixed in 3.0), it's sufficient to call
  254. Init_stdio () once yourself right at the beginning of your main ()
  255. program.  It will self-protect against being re-called later.
  256.  
  257. The actual problem is that any variant which ends up internally calling 
  258. fputc (), as putchar () does, will fail unless it's after something like
  259. printf (), which happens to actually force the initialization.
  260.  
  261. The apparent problem is that the initial data for the _file[] array's
  262. stdout (_file[1]) is apparently now not correct.  I don't have the
  263. source for the current (2.15) libraries, so can't see it there (in
  264. stddata_file.c), but  did print out actual contents by copying the FILE
  265. structs into dummys  before calling any print/put code.  On stdin, the
  266. InUse bit is properly set; on stdout, it's not, though the other
  267. relevant info I checked seemed ok.
  268.  
  269. Then when fputc checks for InUse as a file-active flag, it fails there,
  270. returning -1 (EOF) as it should.  And thus never calls putch (),  which
  271. would have done the Init_stdio () and fixed this.
  272.  
  273. Please copy, Rich Siegal/ LightSpeed people.
  274.  
  275.  
  276. ------------------------------
  277.  
  278. From: raylau@dasys1.UUCP (Raymond Lau)
  279. Subject: MultiFinder Info Again
  280. Date: 23 Feb 88 03:34:04 GMT
  281. Organization: The Big Electric Cat
  282.  
  283.  
  284. I'm asked once for information regarding data structures used by
  285. MultiFinder -  such as the ones which tell what applications are
  286. running, how much memory they're taking, etc..
  287.  
  288. I didn't expect to get an answer and I didn't.
  289.  
  290. Now, I ask again - but for a wider group of people.
  291.  
  292.  
  293. Jasik Design's The Debugger is a lovely debugger.  I prefer it over TMON
  294. and MacsBug....
  295.  
  296. It works great - until MultiFinder came along.
  297.  
  298.  
  299. When I inquired - When?  I received the answer - Apple has not released
  300. enough information on MultiFinder.  So I'm not the only ignorant one!
  301.  
  302. Must we break out that copy of MacNosy that comes with the Debugger and
  303. start disassembling MF to figure out how it works?  Is this information
  304. some big trade secret of Apple's?  Inside Switcher was nice, now where's
  305. Inside MultiFinder?
  306.  
  307. -- 
  308. Raymond Lau                       GEnie: RayLau
  309. 100-04 70 Ave.                    CIS: 76174,2617
  310. Forest Hills, NY 11375-5133       Delphi: RaymondLau
  311. United States of America          MacNET: RayLau
  312. uucp: raylau@dasys1.UUCP (..{phri,cucard,bc-cis,mstan}!dasys1!raylau})
  313.  
  314.  
  315. ------------------------------
  316.  
  317. From: ephraim@think.COM (ephraim vishniac)
  318. Subject: A Custom WDEF
  319. Date: 22 Feb 88 15:59:09 GMT
  320. Organization: Thinking Machines Corporation, Cambridge, MA
  321.  
  322.  
  323. Since mentioning in a comp.sys.mac article that I had seen a circular
  324. window on the Mac, several people have asked for source code or a copy
  325. of the program.  Following is the help text from the program called
  326. "Windows Demo."  The program features a variety of unusual window types,
  327. and the help text explains how they are produced.
  328.  
  329. I will send the actual program (and this text) to info-mac, so that
  330. internet users can retrieve it from sumex.  Even though it was compiled
  331. long ago with Megamax C, the program now runs on a Mac II - I just
  332. patched all those nasty 02B6's to 0A78's and there's no problem any
  333. more.
  334.  
  335. ----------------------  Start of Help Text  -------------------------
  336.  
  337. Program by Richard Koch
  338.            Department of Mathematics
  339.            University of Oregon
  340.            Eugene, Oregon 97403
  341.  
  342.  
  343.    The Macintosh toolbox contains routines which move windows, resize
  344. them, and so forth. These routines are quite complicated; when a window
  345. is moved, the system must erase the old version of the window, draw the
  346. window in its new position, draw newly exposed portions of other
  347. windows, and recalculate the visible portions of all windows. It is
  348. natural to suppose that the toolbox routines which do these things
  349. assume that windows are rectangular, but in fact the routines have been
  350. written to handle windows of any shape whatever.
  351.  
  352.    Most Macintosh programmers use one of the six predefined windows at
  353. the left; these windows are basically rectangular (the final window has
  354. curved corners). But it is easy to define other window shapes. Windows
  355. can have holes in the middle, curved borders, fancy frames, and other
  356. unusual features.
  357.  
  358.    Some Macintosh users believe that the computer keeps a complete copy
  359. of each window in memory even when the window is not visible on the
  360. screen. But that is not correct. The Macintosh knows how to draw window
  361. frames and redraws portions of these frames when they become visible.
  362. But the contents of windows are the responsibility of programs; the
  363. Macintosh issues a warning when a previously hidden portion of a window
  364. becomes visible, and the program does whatever it wishes. The program
  365. you are running is lazy and erases windows entirely when new portions
  366. become visible; by turning this feature off, you can see that the
  367. toolbox erases each newly visible portion of a window before reporting
  368. that it should be redrawn.
  369.  
  370.    Since round windows require extensive calculations, they slow the
  371. system down enough to let us see the window moving algorithms in
  372. operation. If a window is moved from one portion of the screen to
  373. another, the toolbox directly moves screen memory and no redrawing is
  374. necessary. It is easier for the toolbox to make this pixel move when the
  375. window moves up than when the window moves down. If a window is moved
  376. part way off the screen and later moved back on, the toolbox copies
  377. those portions still on the screen by a direct memory move, but
  378. remaining portions of the window frame and contents must be redrawn.
  379.  
  380.    To produce an unusual window, it is only necessary to write one
  381. function of the form
  382.  
  383.    long MyWindow(varCode, theWindow, message, param)
  384.    int varCode, message; WindowPtr theWindow; long param;
  385.  
  386. This function is called by the toolbox when the toolbox needs to know
  387. the shape of the entire window or its content region, when it needs to
  388. know where the mouse went down in the window, or when it needs to draw
  389. the window frame. All other Macintosh window operations are handled
  390. automatically without help from the programmer. The parameter "message"
  391. explains what operation to perform, and the parameter "param" contains
  392. additional information for some requests. It is possible to create
  393. several related windows with only minor variations in appearance; the
  394. parameter varCode explains which variant to use. This parameter must be
  395. between 0 and 15.
  396.  
  397.    The code for "MyWindow" can be put in the main program code area, or
  398. it can be placed in a resource of type WDEF. In the program you are
  399. running, code for the rectangular and square windows is included with
  400. other program code, but code for the round windows is in a WDEF resource
  401. with ID #128.
  402.  
  403.    The Macintosh system contains two WDEF resources with ID's 0 and 1
  404. which define all of the standard windows on the left. The first five
  405. windows are defined in WDEF #0 using varCodes 0 through 5. The final
  406. window is defined in WDEF #1 using varCode 0.
  407.  
  408.    When the Macintosh is running a program and needs a resource, it
  409. first searches the program file for the resource and only searches the
  410. system file if the resource cannot be found in the program file.
  411. Consequently, it is possible to trick programs so they will produce
  412. round windows rather than rectangular windows. Using ReEdit, cut the
  413. entire WDEF resource from the program you are running and paste it into
  414. MacWrite. Then change its resource ID # from 128 to 0. When you run the
  415. resulting MacWrite, it will use round windows for all operations.
  416. (Warning: Text written into MacWrite will disappear under the frame of
  417. the round window, and the "OK" box for some dialogs will be hidden
  418. beyond the window frame. Often a dialog will accept "RETURN" as the
  419. equivalent of clicking on "OK," but otherwise you will be stuck and have
  420. to reset the computer.)
  421.  
  422.    The round window WDEF can be pasted into the FINDER itself, yielding
  423. a round directory.
  424.  
  425.    It is easy to use the round window from this program in your own
  426. programs. Simply copy WDEF #128 into your resources and change its ID
  427. number as appropriate. Your resource code should also contain a window
  428. definition somewhat like
  429.  
  430.    TYPE WIND
  431.     ,128                ;  window resource ID
  432.    First Round Window   ;  window title
  433.    40 80 120 300        ;  top left bottom right
  434.    Visible NoGoAway     ;  window status
  435.    2048                 ;  WindProcID (see below)
  436.    0                    ;  RefCon
  437.  
  438.    The actual program code will create this window in the usual way
  439. using a line like
  440.  
  441.    wp = GetNewWindow(128, wStorage, -1L);
  442.  
  443.    Of course this last line will be different if you are using another
  444. language, but everything else will be the same.
  445.  
  446.    The only strange feature here is the rule for assigning the
  447. WindProcID number. This number should equal sixteen times the WDEF
  448. resource number of the appropriate window definition code plus the
  449. varCode of the window variant. For example, the first five windows
  450. pictured at the left are produced by WDEF #0 in the system file with
  451. varCodes 0 through 5, so their WindProcID's are 0 through 5. The sixth
  452. window to the left is produced by WDEF #1 in the system file using
  453. varCode 0, so its WindProcID is 16.
  454.  
  455.    The WDEF for round windows allows sixteen possible variants. The
  456. rightmost bit in the variant number is 1 if the window has a title and 0
  457. otherwise. The next bit left is 1 if the window has no grow box and 0
  458. otherwise. The next bit is 1 if the window has a fancy woven frame and 0
  459. otherwise. The final left bit is 1 if the title appears on the top and 0
  460. if it appears on the bottom. So the variant number for a window with a
  461. title, grow box, fancy frame, and title at the top is 1 + 2*0 + 4*1 +
  462. 8*1 = 13.
  463.  
  464.    If you want to change the appearance of the round windows from this
  465. program, you will have to rewrite the code for "MyWindow." Below is this
  466. code, written using Megamax C.
  467. -- 
  468. #include <qd.h>
  469. #include <qdvars.h>
  470. #include <win.h>
  471. #include <menu.h>
  472. #include <event.h>
  473. #include <dialog.h>
  474.  
  475. pascal long MyWindow(varCode,theWindow,message,param)
  476. int varCode, message; WindowPeek theWindow; long param;
  477.  
  478. { typedef Rect *RPtr;
  479.   Rect r, rclose[4], rgrow, rtitle;
  480.   int i,j,k;
  481.   Point p;
  482.   GrafPtr temp;
  483.   PenState pnState;
  484.   RgnHandle hstructure, hcontent, frame, htitle;
  485.   Pattern pat;
  486.   char title[256];
  487.   GetPort(&temp); SetPort((GrafPtr)theWindow);
  488.     r = (*((GrafPtr)theWindow)).portRect;
  489.     i = r.a.right - r.a.left; j = r.a.bottom - r.a.top;
  490.     if (i > j) i = j;
  491.     r.a.left = 0; r.a.top = 0;  
  492.  
  493.     LocalToGlobal(&(r.a));
  494.     SetPort(temp);
  495.     r.a.bottom = r.a.top + i; r.a.right = r.a.left + i;
  496.     SetRect(&rclose[0],r.a.left + 3,r.a.top + i/2 - 6,
  497.                        r.a.left + 14,r.a.top + i/2 + 5);
  498.     SetRect(&rclose[1],r.a.right - 14,r.a.top + i/2 -6,
  499.                        r.a.right -3,r.a.top + i/2 + 5);
  500.     SetRect(&rclose[2],r.a.left + i/2 - 6,r.a.top + 3,
  501.                        r.a.left + i/2 + 5,r.a.top + 14);
  502.     SetRect(&rclose[3],r.a.left + i/2 - 6,r.a.bottom -14,
  503.                        r.a.left + i/2 + 5,r.a.bottom -3);
  504.     rgrow.a.right = r.a.left + i/2 + ((i/2)*10)/14;
  505.     rgrow.a.bottom =  r.a.top  + i/2 + ((i/2)*10)/14;
  506.     rgrow.a.left = rgrow.a.right - (9*141)/100;
  507.     rgrow.a.top = rgrow.a.bottom - (9*141)/100;
  508.     for (k = 0; k < 256; k++) title[k] =
  509.      *(*((*theWindow).titleHandle) + k);ptocstr(&title);
  510.     j = StringWidth(&title) / 2 + 15;
  511.     rtitle.a.left = r.a.left + i/2 - j;
  512.     rtitle.a.right = rtitle.a.left + j + j;
  513.     if (varCode & 0x0008) {
  514.                     rtitle.a.top = r.a.top;
  515.                     rtitle.a.bottom = r.a.top + 16;}
  516.  
  517.             else   {rtitle.a.bottom = r.a.bottom;
  518.                     rtitle.a.top = r.a.bottom - 16;}
  519.   p.a.v = HiWord(param); p.a.h = LoWord(param);
  520.   hstructure = (*theWindow).strucRgn;
  521.   hcontent = (*theWindow).contRgn;
  522.  
  523.   switch(message)
  524.    {case 0: if ((*theWindow).visible) {
  525.             if (param == 0L)  {
  526.               GetPenState(&pnState);
  527.               PenSize(18,18);PenMode(patBic);
  528.               FrameOval(&r);
  529.               SetPenState(&pnState);
  530.                    if (((*theWindow).hilited) &&
  531.                (varCode & 0x0004)) {
  532.                  pat[0] = 0xF8; pat[1] = 0x74;
  533.                  pat[2] = 0x22; pat[3] = 0x47;
  534.                  pat[4] = 0x8F; pat[5] = 0x17;
  535.                  pat[6] = 0x22; pat[7] = 0x71;
  536.                  FrameOval(&r);InsetRect(&r,1,1);
  537.                  FrameOval(&r);InsetRect(&r,1,1);
  538.                  frame = NewRgn();OpenRgn();
  539.                  FrameOval(&r);InsetRect(&r,13,13);
  540.  
  541.                  FrameOval(&r);CloseRgn(frame);
  542.                  FillRgn(frame,&pat);DisposeRgn(frame);
  543.                  FrameOval(&r);InsetRect(&r,1,1);
  544.                  FrameOval(&r);
  545.                  }
  546.               else {
  547.                  FrameOval(&r);InsetRect(&r,3,3);
  548.                  if ((*theWindow).hilited)
  549.                    for (i = 0; i < 6; i++) {
  550.                     FrameOval(&r);InsetRect(&r,2,2);}
  551.                  else InsetRect(&r,12,12);
  552.                  InsetRect(&r,1,1);FrameOval(&r);
  553.                  }
  554.               if (((*theWindow).hilited) &&
  555.                  ((*theWindow).goAwayFlag)) {
  556.                  for (i = 0; i < 4; i++) {
  557.                    EraseRect(&rclose[i]);
  558.                    FrameRect(&rclose[i]);}
  559.               }
  560.               if (((*theWindow).hilited) &&
  561.                  ((varCode & 0x0002) == 0)){
  562.                   EraseRect(&rgrow); FrameRect(&rgrow);}
  563.               if (varCode & 0x0001) {
  564.                   EraseRect(&rtitle);FrameRect(&rtitle);
  565.  
  566.                   if ((*theWindow).hilited) {
  567.                      InsetRect(&rtitle,1,1);
  568.                      FrameRect(&rtitle);
  569.                      InsetRect(&rtitle,-1,-1);
  570.                      MoveTo(rtitle.a.left + 15,
  571.                             rtitle.a.top + 13);
  572.                      DrawString(&title);
  573.                      }
  574.               }
  575.             }
  576.             else if (param == 4L) {
  577.                GetPenState(&pnState);
  578.                PenMode(patXor);
  579.                for (i = 0; i < 4; i++)
  580.                  if ((i == 2) && (varCode & 1) &&
  581.                     (varCode & 8));
  582.                  else if ((i == 3) && (varCode & 1) &&
  583.                          !(varCode & 8));
  584.                  else {
  585.                    MoveTo(rclose[i].a.left+2,
  586.                           rclose[i].a.top+2);
  587.                    Line(6,6);
  588.                    MoveTo(rclose[i].a.left+2,
  589.                           rclose[i].a.bottom-3);
  590.  
  591.                    Line(6,-6);
  592.                    MoveTo(rclose[i].a.left+1,
  593.                           rclose[i].a.top + 5);
  594.                    Line(8,0);
  595.                    MoveTo(rclose[i].a.left+5,
  596.                           rclose[i].a.top+1);
  597.                    Line(0,8);
  598.                    InsetRect(&rclose[i],4,4);
  599.                    EraseRect(&rclose[i]);
  600.                    }
  601.                  SetPenState(&pnState);
  602.                  }
  603.             }
  604.             return(0L); break;
  605.     case 1: if (PtInRgn(&p,hcontent)) return(1L);
  606.             else if ((PtInRect(&p,&rclose[0])) &&
  607.                     ((*theWindow).goAwayFlag)  &&
  608.                     ((*theWindow).hilited))
  609.                  return(4L);
  610.             else if ((PtInRect(&p,&rclose[1])) &&
  611.                     ((*theWindow).goAwayFlag)  &&
  612.                     ((*theWindow).hilited))
  613.                  return(4L);
  614.  
  615.             else if ((PtInRect(&p,&rclose[2])) &&
  616.                     ((*theWindow).goAwayFlag)  &&
  617.                     ((*theWindow).hilited)     &&
  618.                     (!((varCode & 1)           &&
  619.                     (varCode & 8))))
  620.                  return(4L);
  621.             else if ((PtInRect(&p,&rclose[3])) &&
  622.                     ((*theWindow).goAwayFlag)  &&
  623.                     (!((varCode & 1)           &&
  624.                     !(varCode & 8)))           &&
  625.                     ((*theWindow).hilited))
  626.                  return(4L);
  627.             else if ((PtInRect(&p,&rgrow))     &&
  628.                     ((varCode & 0x0002) == 0)  &&
  629.                     ((*theWindow).hilited))
  630.                  return(3L);
  631.             else if (PtInRgn(&p, hstructure))
  632.                  return(2L);
  633.             else return(0L); break;   
  634.  
  635.     case 2: SetEmptyRgn(hstructure);
  636.               OpenRgn();
  637.               FrameOval(&r);
  638.               CloseRgn(hstructure);
  639.               if (varCode & 0x0001) {
  640.                     htitle = NewRgn();
  641.                     RectRgn(htitle, &rtitle);
  642.                     UnionRgn(hstructure, htitle,
  643.                              hstructure);
  644.                     DisposeRgn(htitle);
  645.                     }
  646.             InsetRect(&r,18,18);
  647.             SetEmptyRgn(hcontent);
  648.               OpenRgn();
  649.               FrameOval(&r);
  650.               CloseRgn(hcontent);
  651.             break;
  652.     case 3: return(0L); break;
  653.     case 4: return(0L); break; 
  654.  
  655.     case 5: r = *(RPtr)param;
  656.             i = r.a.right - r.a.left;
  657.             j = r.a.bottom - r.a.top;
  658.             if (i > j) i = j;
  659.             r.a.right = r.a.left + i;
  660.             r.a.bottom = r.a.top + i;
  661.             FrameOval(&r); return(0L); break;
  662.     case 6: return(0L); break;
  663.     }
  664. }
  665.  
  666. ----------------------  End of Help Text  ---------------------------------
  667.  
  668. Ephraim Vishniac                      ephraim@think.com
  669. Thinking Machines Corporation / 245 First Street / Cambridge, MA 02142-1214
  670.  
  671.  
  672. ------------------------------
  673.  
  674. From: leonardr@uxe.cso.uiuc.edu
  675. Subject: Re: MacInHebrew problem
  676. Date: 21 Feb 88 08:27:00 GMT
  677.  
  678.     According to the programmer, when last I spoke with him, there was a
  679. definate problem using MacinHebrew with the new ADB keyboards.  It had
  680. to do with the way he was handling the keymapping.  He recommends (as do
  681. I) that you acquire a copy of the Hebrew Interface System from a local
  682. dealer (or from Apple since your dealer amy not have it). and work with
  683. that instead since it is guarenteed to work and it comes with Laser
  684. Fonts as well.
  685. -- 
  686. +---------------------------------+-----------------------------------+
  687. +                                 +  Any thing I say may be taken as  +
  688. +   Leonard Rosenthol             +  fact, then again you might decide+
  689. +   President, LazerWare, inc.    +  that it really isn't, so you     +
  690. +                                 +  never know, do you??             +
  691. +   leonardr@uxe.cso.uiuc.edu     +                                   +
  692. +   GEnie:  MACgician             +                                   +
  693. +   Delphi: MACgician             +                                   +
  694. +                                 +                                   +
  695. +---------------------------------+-----------------------------------+
  696.  
  697. ------------------------------
  698.  
  699. End of Usenet Mac Digest
  700. ************************
  701. -------
  702.